﻿using System;

namespace SGAEntidades
{
    [Serializable]
    public class ReciboServicioInfo
    {
        private String _nroRecibo;
        private String _rucProveedor;
        private ProveedorInfo _proveedor;
        private DateTime? _fechaRecibo;
        private DateTime? _fechaVencimiento;
        private DateTime? _fechaRecepcion;
        private String _idMoneda;
        private Double? _subTotal;
        private Double? _igv;
        private Double? _total;
        private Double? _retenciones;
        private String _observaciones;
        private String _asientoExactus;
        private String _pagadoPor;
        private DateTime? _fechaPago;
        private Double? _montoPago;
        private String _nroPago;
        private String _idUsuarioSistema;
        private String _idTipoServicio;
        private TipoServicioInfo _tipoServicio;
        private String _idLocal;
        private LocalInfo _local;
        
        private DateTime? _fechaReciboDesde;
        private DateTime? _fechaReciboHasta;
        private DateTime? _fechaVencimientoDesde;
        private DateTime? _fechaVencimientoHasta;

        public ReciboServicioInfo() { }

        public ReciboServicioInfo(String sNroRecibo, String sRucProveedor, DateTime? dFechaReciboDesde, DateTime? dFechaReciboHasta,
            DateTime? dFechaVencimientoDesde, DateTime? dFechaVencimientoHasta, String sIdLocal)
        {
            _nroRecibo = sNroRecibo;
            _rucProveedor = sRucProveedor;
            _fechaReciboDesde = dFechaReciboDesde;
            _fechaReciboHasta = dFechaReciboHasta;
            _fechaVencimientoDesde = dFechaVencimientoDesde;
            _fechaVencimientoHasta = dFechaVencimientoHasta;
            _idLocal = sIdLocal;
        }

        public ReciboServicioInfo(String sNroRecibo, String sRucProveedor, ProveedorInfo oProveedor, DateTime? dFechaRecibo, DateTime? dFechaVencimiento,
            DateTime? dFechaRecepcion, String sIdMoneda, Double? nSubTotal, Double? nIgv, Double? nTotal, Double? nRetenciones, String sObservaciones,
            String sAsientoExactus, String sPagadoPor, DateTime? dFechaPago, Double? nMontoPago, String sNroPago, String sUsuarioSistema, String sIdTipoServicio,
            TipoServicioInfo oTipoServicio, String sIdLocal, LocalInfo oLocal)
        {
            _nroRecibo = sNroRecibo;
            _rucProveedor = sRucProveedor;
            _proveedor = oProveedor;
            _fechaRecibo = dFechaRecibo;
            _fechaVencimiento = dFechaVencimiento;
            _fechaRecepcion = dFechaRecepcion;
            _idMoneda = sIdMoneda;
            _subTotal = nSubTotal;
            _igv = nIgv;
            _total = nTotal;
            _retenciones = nRetenciones;
            _observaciones = sObservaciones;
            _asientoExactus = sAsientoExactus;
            _pagadoPor = sPagadoPor;
            _fechaPago = dFechaPago;
            _montoPago = nMontoPago;
            _nroPago = sNroPago;
            _idUsuarioSistema = sUsuarioSistema;
            _idTipoServicio = sIdTipoServicio;
            _tipoServicio = oTipoServicio;
            _idLocal = sIdLocal;
            _local = oLocal;
        }

        public String NroRecibo
        {
            get { return _nroRecibo; }
            set { _nroRecibo = value; }
        }

        public String RucProveedor
        {
            get { return _rucProveedor; }
            set { _rucProveedor = value; }
        }

        public ProveedorInfo Proveedor
        {
            get { return _proveedor; }
            set { _proveedor = value; }
        }

        public DateTime? FechaRecibo
        {
            get { return _fechaRecibo; }
            set { _fechaRecibo = value; }
        }

        public DateTime? FechaVencimiento
        {
            get { return _fechaVencimiento; }
            set { _fechaVencimiento = value; }
        }

        public DateTime? FechaRecepcion
        {
            get { return _fechaRecepcion; }
            set { _fechaRecepcion = value; }
        }

        public String IdMoneda
        {
            get { return _idMoneda; }
            set { _idMoneda = value; }
        }

        public Double? SubTotal
        {
            get { return _subTotal; }
            set { _subTotal = value; }
        }

        public Double? Igv
        {
            get { return _igv; }
            set { _igv = value; }
        }

        public Double? Total
        {
            get { return _total; }
            set { _total = value; }
        }

        public Double? Retenciones
        {
            get { return _retenciones; }
            set { _retenciones = value; }
        }

        public String Observaciones
        {
            get { return _observaciones; }
            set { _observaciones = value; }
        }

        public String AsientoExactus
        {
            get { return _asientoExactus; }
            set { _asientoExactus = value; }
        }

        public DateTime? FechaPago
        {
            get { return _fechaPago; }
            set { _fechaPago = value; }
        }

        public Double? MontoPago
        {
            get { return _montoPago; }
            set { _montoPago = value; }
        }

        public String NroPago
        {
            get { return _nroPago; }
            set { _nroPago = value; }
        }

        public String IdUsuarioSistema
        {
            get { return _idUsuarioSistema; }
            set { _idUsuarioSistema = value; }
        }

        public DateTime? FechaReciboDesde
        {
            get { return _fechaReciboDesde; }
            set { _fechaReciboDesde = value; }
        }

        public DateTime? FechaReciboHasta
        {
            get { return _fechaReciboHasta; }
            set { _fechaReciboHasta = value; }
        }

        public DateTime? FechaVencimientoDesde
        {
            get { return _fechaVencimientoDesde; }
            set { _fechaVencimientoDesde = value; }
        }

        public DateTime? FechaVencimientoHasta
        {
            get { return _fechaVencimientoHasta; }
            set { _fechaVencimientoHasta = value; }
        }

        public string PagadoPor
        {
            get { return _pagadoPor; }
            set { _pagadoPor = value; }
        }

        public string IdTipoServicio
        {
            get { return _idTipoServicio; }
            set { _idTipoServicio = value; }
        }

        public TipoServicioInfo TipoServicio
        {
            get { return _tipoServicio; }
            set { _tipoServicio = value; }
        }

        public string IdLocal
        {
            get { return _idLocal; }
            set { _idLocal = value; }
        }

        public LocalInfo Local
        {
            get { return _local; }
            set { _local = value; }
        }
    }
}
